const Btree = require('sorted-btree').default;

function initBpTree(key) {
    let btree = new Btree(undefined, (a, b) => {
        if (a[key] > b[key]) {
            return 1;
        } else if (a[key] < b[key]) {
            return -1;
        } else {
            return a[key] - b[key];
        }
    });
    //20201227 这里初始化B+树拿到的数据居然是上一次生成的，what the fuck man
    btree._root.keys = [];
    btree._root.values = [];
    btree._root.isShared = true;
    btree._size = 0;
    btree._maxNodeSize = 32;

    return btree;
}

let testData = [
    { a: '20152', b: '83916', c: '85751', d: '91094', e: '90722' },
    { a: '76084', b: '64662', c: '78561', d: '34752', e: '67073' },
    { a: '79251', b: '08605', c: '65893', d: '69550', e: '72165' },
    { a: '67169', b: '84469', c: '69580', d: '29514', e: '84907' },
    { a: '91892', b: '41659', c: '60875', d: '34499', e: '19561' },
    { a: '39099', b: '30947', c: '88808', d: '63998', e: '67167' },
    { a: '24600', b: '07734', c: '8791', d: '49050', e: '98035' },
    { a: '80901', b: '54214', c: '68221', d: '28515', e: '94097' },
    { a: '68362', b: '30752', c: '43943', d: '65269', e: '13737' },
    { a: '12776', b: '76481', c: '83084', d: '30681', e: '53345' },
    { a: '91573', b: '17209', c: '71547', d: '53076', e: '455' },
    { a: '14106', b: '54497', c: '87351', d: '62990', e: '42188' },
    { a: '69940', b: '93926', c: '89511', d: '47418', e: '30799' },
    { a: '66520', b: '80984', c: '83177', d: '25488', e: '32095' },
    { a: '53616', b: '01506', c: '87052', d: '57491', e: '32238' },
    { a: '78140', b: '47883', c: '95839', d: '18682', e: '4310' },
    { a: '83275', b: '21315', c: '47858', d: '3627', e: '75582' },
    { a: '74759', b: '63593', c: '56361', d: '60584', e: '3826' },
    { a: '43350', b: '73857', c: '14681', d: '58456', e: '8668' },
    { a: '38934', b: '38979', c: '18378', d: '29936', e: '37409' },
    { a: '33995', b: '79981', c: '61328', d: '38717', e: '38882' },
    { a: '19360', b: '28480', c: '98003', d: '69208', e: '38603' },
    { a: '58013', b: '77215', c: '18723', d: '3578', e: '25157' },
    { a: '19978', b: '46311', c: '27450', d: '35418', e: '17257' },
    { a: '95520', b: '16530', c: '78456', d: '76880', e: '4806' },
    { a: '33269', b: '11876', c: '20834', d: '72748', e: '1597' },
    { a: '67576', b: '53708', c: '48389', d: '81835', e: '73984' },
    { a: '30547', b: '94763', c: '34806', d: '68189', e: '91547' },
    { a: '49291', b: '66718', c: '91654', d: '40583', e: '24692' },
    { a: '5442', b: '94315', c: '56851', d: '67923', e: '34427' },
    { a: '85807', b: '11052', c: '43727', d: '40156', e: '35403' },
    { a: '39482', b: '19406', c: '93349', d: '39921', e: '99055' },
    { a: '66850', b: '99562', c: '11241', d: '31938', e: '42362' },
    { a: '39672', b: '85385', c: '71303', d: '73856', e: '73324' },
    { a: '44792', b: '66223', c: '3745', d: '8463', e: '81590' },
    { a: '14348', b: '77598', c: '30911', d: '2723', e: '72410' },
    { a: '57375', b: '41436', c: '69949', d: '53167', e: '64671' },
    { a: '34365', b: '67012', c: '23256', d: '23156', e: '23502' },
    { a: '46162', b: '86631', c: '41989', d: '37785', e: '47147' },
    { a: '67563', b: '07039', c: '44834', d: '74785', e: '93304' },
    { a: '69128', b: '26606', c: '41054', d: '32593', e: '48912' },
    { a: '39855', b: '37340', c: '67099', d: '83283', e: '44533' }
]

let btree = initBpTree('a');
for(let i=0;i<testData.length;i++) {
    btree.set(testData[i]);
}
const low = {a:"0"};
const high = {a:"max"};
console.log(`low = ${low} high = ${high}`)
console.log("btree value = ",btree.getRange(low,high));